package com.flying.doublecode;

import java.nio.file.FileAlreadyExistsException;
import java.util.Arrays;

/**
 * @author 刘鹏飞
 * @Classname BubbleSort
 * @Date 2024/12/17 12:12
 * @Created by 刘鹏飞
 * @Description 冒泡排序
 */
public class BubbleSort {


    public static void main(String[] args) {

        int[] nums = {23, 4, 12, 4,  5, 3, 12, 45, 6, 3, 5, 6, 7, 4, 3, 6, 3, 2, 23, 3};

        // 冒泡排序
        System.out.println("排序前"+Arrays.toString(nums));
        bubble(nums);

        System.out.println("排序后"+Arrays.toString(nums));


    }

    public static void bubble(int[] nums){

        for (int j = 0; j < nums.length - 1; j++) {
            boolean flag=true;
            for (int i = 0; i < nums.length - 1-j; i++) {
                // 比较相邻的两个书,如果前一个大于后一个数,则交换两个shudezhi
                if (nums[i] > nums[i + 1]) {
                    // 如果发生了交换将flag置为false,
                    flag=false;
                    // 交换值
                    int temp = nums[i];
                    nums[i] = nums[i + 1];
                    nums[i + 1] = temp;
                }

            }

            // 优化趟数
            // 经过上述循环,没有发生交换,则认为数组已经有序,不需要再进行比较了
            if (flag){
                return;
            }

        }


    }
}
